$(document).ready(function() {
    // 初始化 AOS 动画库
    AOS.init({
        duration: 800,
        once: true
    });

    // 主题切换功能
    $("#themeToggle").change(function() {
        $('body').toggleClass('dark-theme');
        localStorage.setItem('theme', $('body').hasClass('dark-theme') ? 'dark' : 'light');
    });

    // 检查并应用保存的主题
    if (localStorage.getItem('theme') === 'dark') {
        $('body').addClass('dark-theme');
        $("#themeToggle").prop('checked', true);
    }

    // 显示加载动画
    function showLoading() {
        $("#loadingSpinner").fadeIn(200);
    }

    // 隐藏加载动画
    function hideLoading() {
        $("#loadingSpinner").fadeOut(200);
    }

    // Toast提示功能
    function showToast(message, type = 'success') {
        const toast = $(`
            <div class="toast ${type}">
                <i class="fas fa-${type === 'success' ? 'check-circle' : 'exclamation-circle'}"></i>
                <span>${message}</span>
            </div>
        `).appendTo('body');

        setTimeout(() => {
            toast.fadeOut(300, function() {
                $(this).remove();
            });
        }, 3000);
    }

    // 侧边栏菜单项点击事件
    $('.menu-item').click(function(e) {
        e.preventDefault();
        const page = $(this).data('page');
        if (!page) return;

        // 更新活动状态
        $('.menu-item').removeClass('active');
        $(this).addClass('active');

        // 更新面包屑
        $('#current-page').text($(this).find('span').first().text());

        // 更新URL并加载页面
        const newUrl = `?page=${page}`;
        history.pushState(null, '', newUrl);

        // 显示加载动画
        showLoading();

        // 使用AJAX加载页面内容
        $.ajax({
            url: window.location.pathname + newUrl,
            method: 'GET',
            success: function(response) {
                // 从响应中提取content-area的内容
                const tempDiv = $('<div>').html(response);
                const newContent = tempDiv.find('#content-area').html();
                $('#content-area').html(newContent);

                // 初始化新加载内容中的任何组件
                initializeComponents();
            },
            error: function() {
                showToast('页面加载失败，请重试', 'error');
            },
            complete: function() {
                hideLoading();
            }
        });
    });

    // 初始化页面组件
    function initializeComponents() {
        // 初始化表单验证
        $('form').each(function() {
            $(this).on('submit', function(e) {
                e.preventDefault();
                // 处理表单提交
                const formData = new FormData(this);
                submitForm(formData);
            });
        });

        // 初始化数据表格
        if ($.fn.DataTable) {
            $('.data-table').DataTable({
                responsive: true,
                language: {
                    url: "//cdn.datatables.net/plug-ins/1.10.24/i18n/Chinese.json"
                }
            });
        }

        // 初始化日期选择器
        if ($.fn.datepicker) {
            $('.datepicker').datepicker({
                format: 'yyyy-mm-dd',
                language: 'zh-CN',
                autoclose: true
            });
        }

        // 重新初始化AOS动画
        AOS.refresh();
    }

    // 处理表单提交
    function submitForm(formData) {
        showLoading();
        $.ajax({
            url: formData.get('action') || window.location.pathname,
            method: 'POST',
            data: formData,
            processData: false,
            contentType: false,
            success: function(response) {
                showToast('操作成功');
                // 可能需要刷新数据或更新页面
                refreshCurrentPage();
            },
            error: function(xhr) {
                showToast(xhr.responseText || '操作失败', 'error');
            },
            complete: hideLoading
        });
    }

    // 刷新当前页面
    function refreshCurrentPage() {
        const urlParams = new URLSearchParams(window.location.search);
        const currentPage = urlParams.get('page') || 'admin-setting';
        loadPageContent(currentPage);
    }

    // 处理浏览器后退/前进
    window.onpopstate = function(event) {
        const urlParams = new URLSearchParams(window.location.search);
        const page = urlParams.get('page') || 'admin-setting';
        loadPageContent(page, false);
    };

    // 通知系统
    $('.notifications').click(function(e) {
        e.stopPropagation();
        $('.notifications-panel').fadeToggle(300);
        loadNotifications();
    });

    // 加载通知
    function loadNotifications() {
        $.ajax({
            url: '/notifications',
            method: 'GET',
            success: function(notifications) {
                updateNotificationsPanel(notifications);
            },
            error: function() {
                showToast('无法加载通知', 'error');
            }
        });
    }

    // 搜索功能
    let searchTimeout;
    $('.search-box input').on('input', function() {
        clearTimeout(searchTimeout);
        const query = $(this).val();

        searchTimeout = setTimeout(() => {
            if (query.length > 0) {
                performSearch(query);
            }
        }, 500);
    });

    // 初始化当前页面
    const urlParams = new URLSearchParams(window.location.search);
    const initialPage = urlParams.get('page') || 'admin-setting';
    updateActiveMenu(initialPage);
    updateBreadcrumb(initialPage);

    // 自动隐藏加载动画
    $(window).on('load', hideLoading);
}); 